import request from '@/config/axios'

// 藏品管理 VO
export interface CollectionManagementVO {
  id: number // 主键ID
  generalAccessionNumber: string // 藏品总登记号
  numberType: string // 编号类型
  name: string // 名称
  number: string // 编号
  numberOfCases: number // 件数
  originalName: string // 原名
  era: string // 年代
  numberUnit: string // 单位
  geologicalEra: string // 地质年代
  actualQuantity: number // 实际数量
  archaeologicalEra: string // 考古学年代
  sizeLength: number // 外形尺寸(cm)-通长
  chineseHistoricalEra: string // 中国历史学年代
  sizeWidth: number // 外形尺寸(cm)-通宽
  sizeHeight: number // 外形尺寸(cm)-通高
  specificEra: string // 具体年代
  specificSize: string // 具体尺寸
  category: string // 文物类别
  weightRange: string // 质量-质量范围
  materialCategory1: string // 质地类别1
  materialCategory2: string // 质地类别2
  specificWeight: number // 质量-具体质量
  weightUnit: string // 质量-单位
  material: string // 质地
  relicLevel: string // 文物级别
  relicSource: string // 文物来源
  completenessDegree: string // 完残程度
  completenessCondition: string // 完残状况
  preservationState: string // 保存状态
  collectionTimeRange: string // 入藏时间范围
  collectionYear: string // 入藏年度
  collectionRegistrationNumber: string // 藏品登记号
  version: string // 版本
  storageVolume: string // 存卷
  administrativeDivision: string // 行政区划
  unitCode: string // 单位编码
  unitName: string // 单位名称

  attachments: any // 附件信息
  //扩展信息
  paintingLength: undefined
  paintingWidth: undefined
  paintingHeight: undefined
  mountingLength: undefined
  mountingWidth: undefined
  mountingHeight: undefined
  subjectMatter: undefined
  techniqueStyle: undefined
  inscriptionInfo: undefined
  shape: undefined
  knobStyle: undefined
  sealContent: undefined
  textType: undefined
  textArrangement: undefined
  borderFeature: undefined
  sealSize: undefined
}

export const ImportType = 1 | 2 | 3
export interface ImportData {
  file: File
  updateSupport: Boolean
  importType: typeof ImportType // 1藏品导入，2二维采集，3三维采集
  collectionId?: number
}
export interface ImportTemplateData {
  importType: typeof ImportType // 1藏品导入，2二维采集，3三维采集
  collectionId?: number
}

// 藏品管理 API
export const CollectionManagementApi = {
  // 查询藏品管理分页
  getCollectionManagementPage: async (params: any) => {
    return await request.get({ url: `/museum/collection-management/page`, params })
  },

  // 查询藏品管理详情
  getCollectionManagement: async (id: number) => {
    return await request.get({ url: `/museum/collection-management/get?id=` + id })
  },

  // 新增藏品管理
  createCollectionManagement: async (data: CollectionManagementVO) => {
    return await request.post({ url: `/museum/collection-management/create`, data })
  },

  // 修改藏品管理
  updateCollectionManagement: async (data: CollectionManagementVO) => {
    return await request.put({ url: `/museum/collection-management/update`, data })
  },

  // 删除藏品管理
  deleteCollectionManagement: async (id: number) => {
    return await request.delete({ url: `/museum/collection-management/delete?id=` + id })
  },

  // 导出藏品管理 Excel
  exportCollectionManagement: async (params) => {
    return await request.download({ url: `/museum/collection-management/export-excel`, params })
  },

  importTemplate: async (params: ImportTemplateData) => {
    return await request.download({ url: `/museum/collection-management/get-import-template`, params })
  },
  import: async (data: ImportData) => {
    return await request.post({ url: `/museum/collection-management/export-excel`, data })
  }
}
